package br.webchild.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.DateDisplayFormat;
import com.smartgwt.client.types.TitleOrientation;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.BooleanItem;
import com.smartgwt.client.widgets.form.fields.CheckboxItem;
import com.smartgwt.client.widgets.form.fields.DateItem;
import com.smartgwt.client.widgets.form.fields.DateTimeItem;
import com.smartgwt.client.widgets.form.fields.NativeCheckboxItem;
import com.smartgwt.client.widgets.form.fields.SelectItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.tab.Tab;
import com.smartgwt.client.widgets.tab.TabSet;
import com.smartgwt.client.widgets.toolbar.ToolStrip;
import com.smartgwt.client.widgets.toolbar.ToolStripButton;
import com.google.gwt.user.client.ui.SimpleCheckBox;

public class Funcionario extends Window {
	private Tab abaCadastro;
	private Tab abaConsulta;
	private final TextItem tI_Codigo;
	private final TextItem tI_Nome;
	private final TextItem tI_cargo;
	private final TextItem tI_rg;
	private final TextItem tI_cpf;
	private final TextItem tI_Complemento;
	private final TextItem tI_Bairro;
	private final TextItem tI_Cidade;
	private final SelectItem sI_Estado;
	private final TextItem tI_TelFixo;
	private final TextItem tI_TelCel;
	private final SelectItem sI_sexo;
	private final DateTimeItem dti_data_nasc;
	private final DateTimeItem dti_data_cad;
	private final DateTimeItem dti_data_efetivado;
	private TextItem tI_cartTrabalho;
	private TextItem tI_pisPasep;
	private TextItem tI_Endereco;
	private TextItem tI_Numero;
	private final NativeCheckboxItem bI_Ativo;
	private final FuncionarioServicoAsync funcionarioServico = GWT.create(FuncionarioServico.class);
	
	final AsyncCallback<Boolean> resposta = new AsyncCallback<Boolean>(){
		@Override
		public void onFailure(Throwable caught) {
			SC.say("erro no servidor...");
		}
		@Override
		public void onSuccess(Boolean result) {
			SC.say("Gravado com Sucesso!!!");
		}
	};
			

	public Funcionario() {

		this.setTitle("Funcion&aacute;rio");
		setSize("700px", "520px");
		this.setShowMinimizeButton(false);
		this.setIsModal(true);
		this.centerInPage();
		this.setHeaderIcon("/imagens/funcionario.png");

		final java.sql.Date data = new java.sql.Date(System.currentTimeMillis()); // DATA ATUAL

		TabSet tabelaAbas = new TabSet();
		tabelaAbas.setHeight("100%");

//		*****************ABA CADASTRO******************
		abaCadastro = new Tab("Cadastro");
		
		VLayout vl_cadastro = new VLayout();
		vl_cadastro.setHeight("168px");
		
		ToolStrip menu_Cadastro = new ToolStrip();
		menu_Cadastro.setWidth("100%");
		
		ToolStripButton btn_Gravar = new ToolStripButton("Salvar");
		btn_Gravar.setIcon("/imagens/save_add.png");
		menu_Cadastro.addButton(btn_Gravar);
		
		ToolStripButton btn_Limpar = new ToolStripButton("Limpar");
		btn_Limpar.setIcon("/imagens/clear.png");
		menu_Cadastro.addButton(btn_Limpar);
		
		vl_cadastro.addMember(menu_Cadastro);
		
		DynamicForm form_cadastro = new DynamicForm();
		form_cadastro.setHeight("108px");
		form_cadastro.setNumCols(4);
		form_cadastro.setTitleOrientation(TitleOrientation.TOP);
		
		tI_Codigo = new TextItem();
		tI_Codigo.setTitle("Codigo");
		
		tI_Nome = new TextItem();
		tI_Nome.setTitle("Nome");
		
		tI_cargo = new TextItem();
		tI_cargo.setTitle("Cargo");
		
		tI_rg = new TextItem();
		tI_rg.setTitle("RG");
		tI_rg.setMask("#.###.###-#");
		
		tI_cpf = new TextItem();
		tI_cpf.setTitle("CPF");
		tI_cpf.setMask("###.###.###-##");

		tI_cartTrabalho = new TextItem();
		tI_cartTrabalho.setTitle("Carteira de Trabalho");
		tI_cartTrabalho.setMask("#######/###-#/>LL");
		
		tI_pisPasep = new TextItem();
		tI_pisPasep.setTitle("PIS/PASEP");
		tI_pisPasep.setMask("###.#####.##-#");
	
		tI_Endereco = new TextItem();
		tI_Endereco.setTitle("Endereco");
		
		tI_Numero = new TextItem();
		tI_Numero.setTitle("Numero");
	
		tI_Complemento = new TextItem();
		tI_Complemento.setTitle("Complemento");

		tI_Bairro = new TextItem();
		tI_Bairro.setTitle("Bairro");
		
		tI_Cidade = new TextItem();
		tI_Cidade.setTitle("Cidade");
		
		sI_Estado = new SelectItem();
		sI_Estado.setTitle("Estado");
		sI_Estado.setValueMap("AC","AL","AM","AP","BA","CE","DF","ES","GO","MA","MG","MS","MT","PA","PB","PE","PI","PR","RJ","RN","RO","RR","RS","SC","SE","SP","TO");

		tI_TelFixo = new TextItem();
		tI_TelFixo.setTitle("Fone Fixo");
		tI_TelFixo.setMask("(##)####-####");
		
		tI_TelCel = new TextItem();
		tI_TelCel.setTitle("Fone Celular");
		tI_TelCel.setMask("(##)####-####"); 
		
		sI_sexo = new SelectItem();
		sI_sexo.setTitle("Sexo");
		sI_sexo.setValueMap("Masculino", "Feminino");
		
		dti_data_nasc = new DateTimeItem();
		dti_data_nasc.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
		dti_data_nasc.setTitle("Data Nascimento");
		dti_data_nasc.setTextAlign(Alignment.LEFT);
		
		dti_data_cad = new DateTimeItem();
		dti_data_cad.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
		dti_data_cad.setTitle("Data Cadastro");
		dti_data_cad.setTextAlign(Alignment.LEFT);
		dti_data_cad.setValue(data);
		dti_data_cad.setDisabled(true);
		
		dti_data_efetivado = new DateTimeItem();
		dti_data_efetivado.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
		dti_data_efetivado.setTitle("Data Efetiuvado");
		dti_data_efetivado.setTextAlign(Alignment.LEFT);
		
		bI_Ativo = new NativeCheckboxItem();
		bI_Ativo.setValue(true);
		bI_Ativo.setDisabled(true);
		bI_Ativo.setTitle("Ativo");

		form_cadastro.setItems(tI_Codigo,
				tI_Nome,
				tI_cargo,
				tI_rg,
				tI_cpf,
				tI_pisPasep,
				tI_cartTrabalho,
				tI_Endereco,
				tI_Numero,
				tI_Complemento,
				tI_Bairro,
				tI_Cidade,
				sI_Estado,
				sI_sexo,
				tI_TelFixo,
				tI_TelCel,
				dti_data_nasc,
				dti_data_efetivado,
				dti_data_cad,
				bI_Ativo);
		
		vl_cadastro.addMember(form_cadastro);
		abaCadastro.setPane(vl_cadastro);
		tabelaAbas.addTab(abaCadastro);
		
//		*****************EVENTOS CADASTRO*****************
		btn_Gravar.addClickHandler(new ClickHandler() {			
			@Override
			public void onClick(ClickEvent event) {
				String ativo;
				if (bI_Ativo.getValueAsBoolean()) {
					ativo = "S";					
				}else{
					ativo="N";
				};
				funcionarioServico.dados(tI_Nome.getValueAsString(), 
						tI_cargo.getValueAsString(), 
						tI_rg.getValueAsString(), 
						tI_cpf.getValueAsString(), 
						tI_cartTrabalho.getValueAsString(), 
						tI_pisPasep.getValueAsString(), 
						tI_Endereco.getValueAsString(), 
						tI_Numero.getLength(), 
						tI_Complemento.getValueAsString(), 
						tI_Bairro.getValueAsString(), 
						tI_Cidade.getLength(),
						tI_TelFixo.getValueAsString(),
						tI_TelCel.getValueAsString(), 
						ativo, 
						sI_sexo.getDisplayValue(),  
						dti_data_nasc.getValueAsDate(),
						dti_data_cad.getValueAsDate(),
						dti_data_efetivado.getValueAsDate(),
						resposta);
//				FALTA TESTAR POIS NAO ESTA GRAVANDO NO BANCO.....
//				19/08/12 AS 23:50
			}
		});
		
		
		btn_Limpar.addClickHandler(new ClickHandler() {			
			@Override
			public void onClick(ClickEvent event) {
				limpaCampos();			
			}
		});
		
		
//		***************ABA CONSULTA***************
		abaConsulta = new Tab("Consulta");
		
		VLayout layout = new VLayout();
		
		DynamicForm form_consulta = new DynamicForm();
		form_consulta.setNumCols(4);
		layout.addMember(form_consulta);
		
		TextItem ti_codigo_pes = new TextItem();
		ti_codigo_pes.setTitle("Codigo");
		
		TextItem ti_nome_pes = new TextItem();
		ti_nome_pes.setTitle("Nome");
		
		TextItem ti_cargo_pes = new TextItem();
		ti_cargo_pes.setTitle("Cargo");
		
		DateTimeItem dti_data_pes = new DateTimeItem();
		dti_data_pes.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
		dti_data_pes.setTitle("Data Cadastro");
		
		form_consulta.setItems(ti_codigo_pes, ti_nome_pes, ti_cargo_pes, dti_data_pes);
		
		ToolStrip menu_consulta = new ToolStrip();
		menu_consulta.setWidth("100%");
		
		ToolStripButton toolStripButton = new ToolStripButton("Pesquisar");
		toolStripButton.setIcon("/imagens/pesquisar.png");
		menu_consulta.addButton(toolStripButton);

		layout.addMember(menu_consulta);
		
		ListGrid listGrid = new ListGrid();
		layout.addMember(listGrid);
		abaConsulta.setPane(layout);
		tabelaAbas.addTab(abaConsulta);
		
//		*********TODAS AS ABAS***********
		addItem(tabelaAbas);

	} // FINAL DO CONSTRUTOR
	
	public void limpaCampos(){
		tI_Codigo.setValue("");
		tI_Nome.setValue("");
		tI_cargo.setValue("");
		tI_rg.setValue("");
		tI_cpf.setValue("");
		tI_cartTrabalho.setValue("");
		tI_pisPasep.setValue("");
		tI_Endereco.setValue("");
		tI_Numero.setValue("");
		tI_Complemento.setValue("");
		tI_Bairro.setValue("");
		tI_Cidade.setValue("");
		sI_Estado.setValue("");
		sI_sexo.setValue("");
		tI_TelFixo.setValue("");
		tI_TelCel.setValue("");
		dti_data_nasc.setValue("");
		dti_data_efetivado.setValue("");
	}
}